package bdelegate;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;

import rmi.InterfazRemotaRest;
import beans.MozoBean;
import beans.TipoProductoBean;




public class BDelegate {

	private InterfazRemotaRest sistema;
	private String direccionIP = "localhost";

	
	public BDelegate() {
		if (conecto()){
			System.out.println("Cliente conecto OK");
		} else {
			System.out.println("Cliente sin conexion");
		}
	}
	
	private boolean conecto() {
		try {
			sistema =  (InterfazRemotaRest) Naming.lookup("//"+direccionIP+"/Restaurant");
			System.out.println("Cliente OK");
			return true;
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (RemoteException e) {
			e.printStackTrace();
		} catch (NotBoundException e) {
			e.printStackTrace();
		}
		return false;
	}
	
	public String hola() throws RemoteException {
		return sistema.hola();
	}
	// Miguel

	public ArrayList<MozoBean> mo() throws RemoteException {
		return (ArrayList<MozoBean>) sistema.obtenerMozos();
	}
	public  MozoBean obtenerMozo(Integer idMozo)throws RemoteException{
		return sistema.obtenerMozo(idMozo);
	}
	
	//Carlos
	//Devuelve los productos con stock de un determinado deposito
	public ArrayList<String> nombreProductosConStock(int nroDeposito) throws RemoteException {
		return (ArrayList<String>) sistema.obtenerNombreTipoProductoConStock(nroDeposito);
	}
	
	// Devuelve el ID del usuario en la tabla de usuarios
	public String obtenerIdUsuario(int legajo) throws RemoteException{
		return (String) sistema.obtenerIdUsuario(legajo); 
		
	}

	// Devuelve el listado de sucursales 
	public ArrayList<Integer> IdDepositos() throws RemoteException {
		return (ArrayList<Integer>) sistema.obtenerIdDeposito();
	}
}
	
